package design.patterns.mementomode.widedemo;

/**
 * @Desc:   发起人角色
 *          发起人角色利用一个新建的备忘录对象将自己的内部状态存储起来
 * @author: cww
 * @DateTime: 2020-06-13 14:54
 */

public class Originator {
    private String state;

    /**
     * 工厂方法，返还一个新的备忘录对象，这个备忘录存储了发起人的状态
     * @return
     */
    public Memento createMemento() {
        return new Memento(state);
    }

    public void  restoreMemento(Memento memento){
        this.state = memento.getState();
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
        System.out.println("Current state = " + this.state);
    }
}
